Microcontrollers with non-volatile flash memory are mostly used for SIM (subscriber identification module) card applications as they provide high flexibility in configuration and offer the option for late software (SW) loading, as compared to microcontrollers being equipped with ROM (read-only memory) only. ROM based programming takes place during silicon production and cannot be altered later.
For high security ICs (integrated circuits) used in, for example, banking/payment and e-Government (or Electronic Government), the ROM based solutions is up to now preferred, as altering the ROM and by that manipulating the software (SW) is regarded as very hard to impossible after production of silicon. Meanwhile additional security mechanisms have also been invented to mitigate the risk of using Flash instead of ROM for high security devices.
One risk for flash memory based secure devices is the loss (and/or corruption) of data incurred by exposure to extreme environments, such as high temperature or high radiation. For such cases high security devices have protection mechanisms implemented, which prevent them from operating if significant memory parts are lost (i.e., the device enters a “secured” state and cannot be used anymore). Then it is necessary to recover data to the flash memory containing the missing (or corrupted) data, so that the flash memory based secure device can recover from the “secured” state to a normal operating state.
Additionally, as high security devices increasingly migrate into systems and as such are embodied on electronic devices (such as smart phones, tablets) or built in into meters, the loss of data would make the whole electronic device not function any more. The cost of such electronic devices is by far higher as compared to, say for example, a smart card. Therefore, not being able to recover from a “secured” state (due to data loss and/or corruption) is not likely to be an acceptable option.
Therefore, it is desirable to have methods and systems that provide for data recovery on secure flash devices, when data loss and/or corruption has occurred on the flash memory.